#ifndef CHECK_OUTPUT_H
#define CHECK_OUTPUT_H

#include "settings/IOSettings/outputfunction.h"
#include "settings/IOSettings/inputfunction.h"
#define inMgr InputFunction::getInputFunctionMgr()
#define outMgr OutputFunction::getOutputFunctionMgr()

#define _start() outMgr->setStartStatus(Output::SET)
#define _stop()  outMgr->setStartStatus(Output::RESET)

#define _en_hi() outMgr->setCheckHighStatus(Output::SET)
#define _dis_hi() outMgr->setCheckHighStatus(Output::RESET)

#define _en_ok() outMgr->setCheckOKStatus(Output::SET)
#define _dis_ok() outMgr->setCheckOKStatus(Output::RESET)


#define _en_ng() outMgr->setCheckNgStatus(Output::SET)
#define _dis_ng() outMgr->setCheckNgStatus(Output::RESET)

#define _en_lo() outMgr->setCheckLowStatus(Output::SET)
#define _dis_lo() outMgr->setCheckLowStatus(Output::RESET)

#define en_buzz() outMgr->setCheckBeepStatus(Output::SET)
#define dis_buzz() outMgr->setCheckBeepStatus(Output::RESET)

//#define en_pickout() outMgr->setPickOutStatus(Output::SET)
//#define dis_pickout() outMgr->setPickOutStatus((Output::RESET)

#define en_range(x) outMgr->setRangeStatus(x,Output::SET)
//#define _checkRange(w) outMgr->checkWeight(w);

#define weight_finished()        outMgr->setWeightOkStatus(Output::SET);
#define weight_finished_cancel() outMgr->setWeightOkStatus(Output::RESET);

#define en_hi() \
    do\
    {\
        _en_hi();_dis_lo();_dis_ok(); _en_ng();\
    }while(0)


#define en_ok() \
    do\
    {\
        _en_ok();_dis_lo();_dis_hi();_dis_ng();\
    }while(0)

#define en_lo() \
    do\
    {\
        _en_lo();_dis_hi();_dis_ok();_en_ng();\
    }while(0)

#define dis_all() \
    do {\
        _dis_lo();_dis_hi();_dis_ok();_dis_ng();\
    }while(0)

#endif
